# 使用 .NET 10.0 SDK 作为基础镜像
FROM mcr.microsoft.com/dotnet/sdk:10.0

# 设定环境变量（例如时区、UTF-8编码）
ENV LANG C.UTF-8
ENV TZ Asia/Shanghai

# 安装 Node.js（参考 NodeSource 的安装方式）
# 1. 更新软件包列表并安装 curl 等必要工具
RUN apt-get update && \
    apt-get install -y curl apt-utils

# 2. 添加 NodeSource 的 Node.js 20.x LTS 版本源并安装 Node.js 和 npm
RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && \
    apt-get install -y nodejs

# 3. （可选）配置 npm 镜像源以加速后续包下载，例如使用淘宝镜像
RUN npm config set registry https://registry.npmmirror.com

# 4. （可选）安装全局 npm 包，例如 yarn 和 gulp（根据您的项目需求）
RUN npm install -g yarn gulp-cli rimraf typescript

# 5. 验证安装
RUN node -v && npm -v

# 6.缓存nuget相关
WORKDIR /SageKing
COPY . .
RUN dotnet restore "src/SageKing.Blazor.OpenIdService/SageKing.Blazor.OpenIdService/SageKing.Blazor.OpenIdService.csproj"

# 7.构建服务库
# WORKDIR "/SageKing"
# RUN dotnet build "src/SageKing.Blazor.OpenIdService/SageKing.Blazor.OpenIdService/SageKing.Blazor.OpenIdService.csproj" -c Release -f net10.0

# 递归删除配置目录文件-整个目录及其内容
RUN rm -rf /SageKing

# 设置后续操作的工作目录
WORKDIR /app